package core;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

public class Data {

  private int week;
  private DateInterval interval;
  private ArrayList<DateInterval> timeDates;
  private ArrayList<Data> weeks;

  @SuppressWarnings("unchecked")
  public Data() throws ParseException{
    SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
    this.weeks = new ArrayList<>();
    this.timeDates = new ArrayList<>();
    
    timeDates.add(new DateInterval(format.parse("02.09.2013 08:45:00"), format.parse("02.09.2013 15:57:00")));
    timeDates.add(new DateInterval(format.parse("03.09.2013 07:55:15"), format.parse("03.09.2013 16:40:30")));
    timeDates.add(new DateInterval(format.parse("04.09.2013 07:50:45"), format.parse("04.09.2013 08:02:00")));
    timeDates.add(new DateInterval(format.parse("04.09.2013 08:05:30"), format.parse("04.09.2013 12:38:30")));
    timeDates.add(new DateInterval(format.parse("04.09.2013 13:18:45"), format.parse("04.09.2013 17:16:15")));
    timeDates.add(new DateInterval(format.parse("05.09.2013 07:02:30"), format.parse("05.09.2013 15:05:30")));
    timeDates.add(new DateInterval(format.parse("06.09.2013 07:03:45"), format.parse("06.09.2013 11:03:00")));
    timeDates.add(new DateInterval(format.parse("06.09.2013 11:32:45"), format.parse("06.09.2013 15:02:00")));
    getWeeks().add(new Data(1, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("09.09.2013 08:09:15"), format.parse("09.09.2013 11:55:30")));
    timeDates.add(new DateInterval(format.parse("09.09.2013 11:59:45"), format.parse("09.09.2013 16:26:15")));
    timeDates.add(new DateInterval(format.parse("10.09.2013 08:02:15"), format.parse("10.09.2013 16:31:00")));
    timeDates.add(new DateInterval(format.parse("11.09.2013 08:09:15"), format.parse("11.09.2013 12:10:00")));
    timeDates.add(new DateInterval(format.parse("11.09.2013 12:43:45"), format.parse("11.09.2013 16:44:30")));
    timeDates.add(new DateInterval(format.parse("12.09.2013 06:47:00"), format.parse("12.09.2013 11:37:30")));
    timeDates.add(new DateInterval(format.parse("12.09.2013 12:05:00"), format.parse("12.09.2013 15:04:30")));
    timeDates.add(new DateInterval(format.parse("13.09.2013 06:44:00"), format.parse("13.09.2013 12:18:45")));
    timeDates.add(new DateInterval(format.parse("13.09.2013 12:48:00"), format.parse("13.09.2013 14:56:00")));
    getWeeks().add(new Data(2, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();

    timeDates.add(new DateInterval(format.parse("16.09.2013 07:48:15"), format.parse("16.09.2013 09:23:00")));
    timeDates.add(new DateInterval(format.parse("16.09.2013 09:25:45"), format.parse("16.09.2013 16:13:15")));
    timeDates.add(new DateInterval(format.parse("17.09.2013 07:48:15"), format.parse("17.09.2013 12:25:45")));
    timeDates.add(new DateInterval(format.parse("17.09.2013 12:54:15"), format.parse("17.09.2013 16:41:00")));
    timeDates.add(new DateInterval(format.parse("18.09.2013 07:49:00"), format.parse("18.09.2013 12:23:30")));
    timeDates.add(new DateInterval(format.parse("18.09.2013 12:52:45"), format.parse("18.09.2013 16:19:00")));
    timeDates.add(new DateInterval(format.parse("19.09.2013 08:00:00"), format.parse("19.09.2013 09:31:00")));
    timeDates.add(new DateInterval(format.parse("19.09.2013 09:31:45"), format.parse("19.09.2013 09:36:30")));
    timeDates.add(new DateInterval(format.parse("19.09.2013 09:37:00"), format.parse("19.09.2013 09:43:15")));
    timeDates.add(new DateInterval(format.parse("19.09.2013 09:44:15"), format.parse("19.09.2013 11:02:45")));
    timeDates.add(new DateInterval(format.parse("19.09.2013 11:53:15"), format.parse("19.09.2013 16:15:15")));
    timeDates.add(new DateInterval(format.parse("20.09.2013 07:48:00"), format.parse("20.09.2013 14:57:45")));
    getWeeks().add(new Data(3, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("23.09.2013 07:50:00"), format.parse("23.09.2013 16:03:30")));
    timeDates.add(new DateInterval(format.parse("24.09.2013 07:49:30"), format.parse("24.09.2013 11:02:30")));
    timeDates.add(new DateInterval(format.parse("24.09.2013 11:54:00"), format.parse("24.09.2013 16:43:00")));
    timeDates.add(new DateInterval(format.parse("25.09.2013 07:38:30"), format.parse("25.09.2013 15:44:45")));
    timeDates.add(new DateInterval(format.parse("26.09.2013 07:48:15"), format.parse("26.09.2013 16:13:15")));
    timeDates.add(new DateInterval(format.parse("27.09.2013 06:46:45"), format.parse("27.09.2013 12:04:30")));
    timeDates.add(new DateInterval(format.parse("27.09.2013 12:41:00"), format.parse("27.09.2013 14:57:30")));
    getWeeks().add(new Data(4, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("30.09.2013 07:56:45"), format.parse("30.09.2013 16:24:30")));
    timeDates.add(new DateInterval(format.parse("01.10.2013 07:50:15"), format.parse("01.10.2013 11:31:15")));
    timeDates.add(new DateInterval(format.parse("01.10.2013 12:00:30"), format.parse("01.10.2013 13:12:15")));
    timeDates.add(new DateInterval(format.parse("01.10.2013 13:12:45"), format.parse("01.10.2013 13:15:15")));
    timeDates.add(new DateInterval(format.parse("01.10.2013 13:16:15"), format.parse("01.10.2013 16:13:45")));
    timeDates.add(new DateInterval(format.parse("02.10.2013 07:50:00"), format.parse("02.10.2013 10:16:45")));
    timeDates.add(new DateInterval(format.parse("02.10.2013 10:18:45"), format.parse("02.10.2013 12:25:00")));
    timeDates.add(new DateInterval(format.parse("02.10.2013 13:05:45"), format.parse("02.10.2013 17:15:30")));
    timeDates.add(new DateInterval(format.parse("03.10.2013 06:47:15"), format.parse("03.10.2013 11:27:30")));
    timeDates.add(new DateInterval(format.parse("03.10.2013 12:03:00"), format.parse("03.10.2013 15:02:30")));
    timeDates.add(new DateInterval(format.parse("04.10.2013 06:47:45"), format.parse("04.10.2013 11:36:00")));
    timeDates.add(new DateInterval(format.parse("04.10.2013 12:05:15"), format.parse("04.10.2013 14:58:00")));
    getWeeks().add(new Data(5, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("07.10.2013 07:48:15"), format.parse("07.10.2013 16:13:30")));
    timeDates.add(new DateInterval(format.parse("08.10.2013 07:45:30"), format.parse("08.10.2013 11:19:00")));
    timeDates.add(new DateInterval(format.parse("08.10.2013 11:53:00"), format.parse("08.10.2013 16:15:30")));
    timeDates.add(new DateInterval(format.parse("09.10.2013 07:49:00"), format.parse("09.10.2013 11:02:00")));
    timeDates.add(new DateInterval(format.parse("09.10.2013 11:39:15"), format.parse("09.10.2013 11:40:30")));
    timeDates.add(new DateInterval(format.parse("09.10.2013 11:41:45"), format.parse("09.10.2013 16:17:30")));
    timeDates.add(new DateInterval(format.parse("10.10.2013 07:48:00"), format.parse("10.10.2013 11:39:15")));
    timeDates.add(new DateInterval(format.parse("10.10.2013 12:05:15"), format.parse("10.10.2013 17:15:15")));
    timeDates.add(new DateInterval(format.parse("11.10.2013 07:25:45"), format.parse("11.10.2013 11:31:00")));
    timeDates.add(new DateInterval(format.parse("11.10.2013 12:02:30"), format.parse("11.10.2013 15:04:00")));
    getWeeks().add(new Data(6, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("14.10.2013 07:51:45"), format.parse("14.10.2013 11:01:30")));
    timeDates.add(new DateInterval(format.parse("14.10.2013 11:49:15"), format.parse("14.10.2013 16:16:30")));
    timeDates.add(new DateInterval(format.parse("15.10.2013 07:49:00"), format.parse("15.10.2013 11:01:15")));
    timeDates.add(new DateInterval(format.parse("15.10.2013 11:40:00"), format.parse("15.10.2013 17:57:30")));
    timeDates.add(new DateInterval(format.parse("16.10.2013 07:49:00"), format.parse("16.10.2013 11:05:00")));
    timeDates.add(new DateInterval(format.parse("16.10.2013 11:50:45"), format.parse("16.10.2013 16:20:15")));
    timeDates.add(new DateInterval(format.parse("17.10.2013 07:52:00"), format.parse("17.10.2013 08:19:45")));
    timeDates.add(new DateInterval(format.parse("17.10.2013 08:26:15"), format.parse("17.10.2013 11:08:00")));
    timeDates.add(new DateInterval(format.parse("17.10.2013 11:55:45"), format.parse("17.10.2013 17:17:00")));
    timeDates.add(new DateInterval(format.parse("18.10.2013 07:45:30"), format.parse("18.10.2013 11:05:45")));
    timeDates.add(new DateInterval(format.parse("18.10.2013 11:42:00"), format.parse("18.10.2013 15:17:00")));
    getWeeks().add(new Data(7, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("21.10.2013 07:35:15"), format.parse("21.10.2013 16:18:30")));
    timeDates.add(new DateInterval(format.parse("22.10.2013 07:47:15"), format.parse("22.10.2013 15:46:15")));
    timeDates.add(new DateInterval(format.parse("23.10.2013 07:44:45"), format.parse("23.10.2013 11:39:00")));
    timeDates.add(new DateInterval(format.parse("23.10.2013 12:23:30"), format.parse("23.10.2013 12:57:30")));
    timeDates.add(new DateInterval(format.parse("23.10.2013 13:00:30"), format.parse("23.10.2013 16:14:00")));
    timeDates.add(new DateInterval(format.parse("24.10.2013 08:48:00"), format.parse("24.10.2013 11:37:15")));
    timeDates.add(new DateInterval(format.parse("24.10.2013 12:24:45"), format.parse("24.10.2013 15:50:00")));
    timeDates.add(new DateInterval(format.parse("24.10.2013 16:16:15"), format.parse("24.10.2013 18:06:45")));
    timeDates.add(new DateInterval(format.parse("25.10.2013 07:14:00"), format.parse("25.10.2013 11:58:30")));
    timeDates.add(new DateInterval(format.parse("25.10.2013 12:30:00"), format.parse("25.10.2013 16:15:30")));
    getWeeks().add(new Data(8, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    timeDates.add(new DateInterval(format.parse("28.10.2013 07:40:45"), format.parse("28.10.2013 11:03:30")));
    timeDates.add(new DateInterval(format.parse("28.10.2013 11:51:45"), format.parse("28.10.2013 16:42:00")));
    timeDates.add(new DateInterval(format.parse("29.10.2013 07:45:00"), format.parse("29.10.2013 11:10:15")));
    timeDates.add(new DateInterval(format.parse("29.10.2013 11:34:15"), format.parse("29.10.2013 16:17:30")));
    timeDates.add(new DateInterval(format.parse("30.10.2013 07:50:00"), format.parse("30.10.2013 11:00:00")));
    timeDates.add(new DateInterval(format.parse("30.10.2013 11:39:15"), format.parse("30.10.2013 16:15:30")));
    timeDates.add(new DateInterval(format.parse("31.10.2013 06:46:00"), format.parse("31.10.2013 11:45:30")));
    timeDates.add(new DateInterval(format.parse("31.10.2013 12:15:30"), format.parse("31.10.2013 15:00:30")));
    getWeeks().add(new Data(9, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
    
    //timeDates.add(new DateInterval(format.parse(""), format.parse("")));
    getWeeks().add(new Data(9, (ArrayList<DateInterval>) timeDates.clone()));
    timeDates.clear();
  }
  
  public Data(int week, ArrayList<DateInterval> data){
    this.week = week;
    this.timeDates = data;
  }
  
  public Data(int week, DateInterval interval) {
    this.week = week;
    this.setInterval(interval);
  }

  public int getWeek() {
    return week;
  }

  public void setWeek(int week) {
    this.week = week;
  }

  public ArrayList<DateInterval> getData() {
    return timeDates;
  }

  public void setData(ArrayList<DateInterval> data) {
    this.timeDates = data;
  }

  public DateInterval getInterval() {
    return interval;
  }

  public void setInterval(DateInterval interval) {
    this.interval = interval;
  }

  public ArrayList<Data> getWeeks() {
    return weeks;
  }

  public void setWeeks(ArrayList<Data> weeks) {
    this.weeks = weeks;
  }
}
